ホームに戻る
出典 :
FrameworkElement.Tag プロパティ (System.Windows) | Microsoft Docs » [WPF] Buttonの処理を一箇所にまとめる 技術ブログ
関連 :
リソース スタイル
目次 :

FrameworkElement.Tag プロパティ

ユーザ定義の任意のオブジェクト値を格納することができる。

応用 : Button に Tag を付与し、イベントハンドラを共通化する


(XAML)
<Button Tag="AAA" Click="Button_Click"/> <Button Tag="BBB" Click="Button_Click"/> <Button Tag="CCC" Click="Button_Click"/> <Button Tag="DDD" Click="Button_Click"/>
スタイルを用いることで、より簡潔な記述でイベントハンドラを共通化できる。
詳細はリンク先を参照。
(コードビハインド)
// 共通のクリックイベントハンドラ private void Button_Click(object sender, RoutedEventArgs e) { // 押されたボタンの取得 Button button = (Button)sender; // ボタンに設定されたタグによって処理を振り分け switch (button.Tag.ToString()) { case "AAA": : break; case "BBB": : break; case "CCC": : break; case "DDD": : break; default: break; } }
Button に Tag を設定することで、Tag によって押されたボタンを特定したり、押されたボタンに紐づく情報を取得するといったことができるため、
イベントハンドラを集約することができる。
但し、XAML上では文字列形式でしか値を設定することができないため、異なる形式で用いる場合は工夫が必要。